package net.homelinux.chaoswg.io.renga.core.helper.datatypes;

import net.homelinux.chaoswg.io.datatypes.Tupel;

public final class Octet<T0, T1, T2, T3, T4, T5, T6, T7> implements Tupel {
    private T0 t0;
    private T1 t1;
    private T2 t2;
    private T3 t3;
    private T4 t4;
    private T5 t5;
    private T6 t6;
    private T7 t7;
    
    public Octet(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7) {
        super();
        this.t0 = t0;
        this.t1 = t1;
        this.t2 = t2;
        this.t3 = t3;
        this.t4 = t4;
        this.t5 = t5;
        this.t6 = t6;
        this.t7 = t7;
    }
    
    public final T0 getFirst () {
        return this.t0;
    }

    public final T1 getSecond () {
        return this.t1;
    }

    public final T2 getThird() {
        return this.t2;
    }

    public final T3 getForth() {
        return this.t3;
    }

    public final T4 getFifth() {
        return this.t4;
    }

    public final T5 getSixth () {
        return this.t5;
    }

    public final T6 getSeventh() {
        return this.t6;
    }

    public final T7 getEighth() {
        return this.t7;
    }

    public final void setFirst (T0 t0) {
        this.t0 = t0;
    }

    public final void setSecond (T1 t1) {
        this.t1 = t1;
    }

    public final void setThird(T2 t2) {
        this.t2 = t2;
    }

    public final void setForth(T3 t3) {
        this.t3 = t3;
    }

    public final void setFifth(T4 t4) {
        this.t4 = t4;
    }

    public final void setSixth (T5 t5) {
        this.t5 = t5;
    }

    public final void setSeventh(T6 t6) {
        this.t6 = t6;
    }

    public final void setEighth(T7 t7) {
        this.t7 = t7;
    }

    public final String toString () {
        return "{" + this.t0.toString() + ", " + this.t1.toString() + ", " + this.t2.toString() + ", " + this.t3.toString() + ", " + 
                            this.t4.toString() + ", " + this.t5.toString() + ", " + this.t6.toString() + ", " + this.t7.toString() + "}"; 
    }
    
    public int getSize () {
        return 8;
    }

}
